"""
@author: yjx
@file: 01.练习.py
@time: 2023/4/20 10:45
"""

'''
1.python中list和tuple的区别：
list是可变数据类型，tuple是不可变数据类型
list用[]定义，tuple用()定义
'''

'''
python解释器有哪些？
Cpython
pypy
(pyCharm:python的集成开发环境)
'''

'''
从键盘接受两个日期时间，计算他们相差天数？
'''

# 输出今天的时间
# from datetime import date
# d1 = date.today()
# print(d1)

'''
python的异常处理使用什么
try:...except:...
'''

'''
python字典存储的原理？
字典存储的原理是：
1.首先我们要给一个字典的key取hash值
2.再用hash值和hash表的长度取模
3.得到的模就是哈希索引表中的下标，在对应的位置存上键值对的哈希表的地址

 字典的特点是什么？
 无序
 可变数据类型
 key必须是不可变数据类型（可hash对象），并且key必须唯一
'''

'''
形参：定义函数时的参数列表
实参：调用函数时的参数列表
python中*args， **kwargs是什么意思
*args:可变长位置参数  -->得到元组
**kwargs:可变长关键字参数  -->得到字典
位置参数：
位置参数不是一个出现在函数定义时的概念，而是一个出现在函数调用时的概念。
调用函数时传入的实际参数数量和位置都必须和定义函数时保持一致。
实参和形参数量必须一致，参数多或者少都会报错TypeError。
实参和形参位置必须一致，否则会产生不同的结果。

关键字参数：
关键字参数不是一个出现在函数定义时的概念，而是一个出现在函数调用时的概念。
关键字参数是指使用键值对的形式key=values来确定输入的参数值。
关键字参数允许你以任何顺序传递参数，不再需要与形参的位置完全一致，只要将参数名写正确即可。
混合传参时关键字参数必须位于位置参数之后。
使用关键字参数，可以让参数传递更加明确，让调用方清楚的知道每个参数的传值情况。
'''

'''
python的函数参数传递，是属于值类型还是引用类型？
python的函数参数传递是引用类型，传地址
如果函数传递的参数是可变数据类型，就可以在函数内修改她全局的值
但是如果函数传递的参数是一个不可变数据类型，就只能以传值的方式来传递参数，不能修改它原来的值
'''


'''
go语言你已经使用过哪些库？go语言的基本数据类型有哪些？ 哪些是值类型？哪些是引用类型？
库：fmt,io,os,error,
基本数据类型：int float boolea char byte rune
值类型：int float boolea char byte rune，数组
引用类型：map 、指针、切片
'''

'''
go语言怎么进行错误处理，
期望程序员自己去处理错误,go语言内都是函数组织代码，在函数实现过程中，现类函数不能解决的问题就返回给程序员处理
函数调用结果一般都会有一个errr返回值，不会中断程序
panic可以在任何地方发生，但是recover()只能在defer()调用的函数中才有效
'''

'''
go语言map类型怎么判断key已经存在？
'''

'''
8、go语言切片底层原理，扩容方式是什么？
切片就是长度不固定的数组，
扩容方式是：在原来数组的基础上，重新i定义一个容量为原来的两倍的数组，将原来的值赋给新的数组，
'''

'''
9、go语言中怎么接受可变长的参数
// 可变长参数的传递
//num 接受可变长的int类型的传入
//func myargs(num... int){
//	fmt.Printf("%T-->%v \n", num, num)
//}
'''

'''
go的函数参数传递，是属于值类型还是引用类型？
go语言 传参方式：值传递
使用指针可以达到引用传递的效果
想修改外部变量的时候我们可以通过指针来修改值
想修改内部变量的时候我们可以通过值传递来修改值
'''